﻿using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Text;

namespace BCService.Common.Payment.Payment.AliPayModel.Trade.Precreate
{
    /// <summary>
    /// 统一收单线下交易预创建
    /// </summary>
    public class AlipayBizContentTradePrecreate:AlipayBizContent
    {
        public AlipayBizContentTradePrecreate():base()
        {
        }
        public new string Serialize()
        {
            return JsonConvert.SerializeObject(this, base.jsonSerializerSettings);
        }
        /// <summary>
        /// 订单包含的商品列表信息，为 JSON 格式，其它说明详见商品明细说明
        /// 0
        /// 可选
        /// </summary>
        public List<GoodsDetailInfo> GoodsDetail { get; set; }
        /// <summary>
        /// 商户操作员编号
        /// 28
        /// 可选
        /// </summary>
        public string OperatorId { get; set; }
        /// <summary>
        /// 商户门店编号
        /// 32
        /// 可选
        /// </summary>
        public string StoreId { get; set; }
        /// <summary>
        /// 商户机具终端编号
        /// 32
        /// 可选
        /// </summary>
        public string TerminalId { get; set; }
        /// <summary>
        /// 业务扩展参数
        /// 0
        /// 可选
        /// </summary>
        public ExtendParamsItem ExtendParams { get; set; }
        /// <summary>
        /// 商户原始订单号，最大长度限制 32 位
        /// 32
        /// 可选
        /// </summary>
        public string MerchantOrderNo { get; set; }
        /// <summary>
        /// 该笔订单允许的最晚付款时间，逾期将关闭交易，从生成二维码开始计时。
        /// 取值范围：1m～15d。m-分钟，h-小时，d-天，1c-当天（1c-当天的情况下，无论交易何时创建，都在0点关闭）。 
        /// 该参数数值不接受小数点， 如 1.5h，可转换为 90m。
        /// 6
        /// 可选
        /// </summary>
        public string QrCodeTimeoutExpress { get; set; }
    }
    /// <summary>
    /// 订单包含的商品信息
    /// </summary>
    public class GoodsDetailInfo
    {
        /// <summary>
        /// 商品的编号	
        /// 32
        /// 必填
        /// </summary>
        public string GoodsId { get; set; }
        /// <summary>
        /// 商品名称	
        /// 256
        /// 必填
        /// </summary>
        public string GoodsName { get; set; }
        /// <summary>
        /// 商品数量	
        /// 10
        /// 必填
        /// </summary>
        public int Quantity { get; set; }
        /// <summary>
        /// 商品单价，单位为元
        /// 9	
        /// 必填
        /// </summary>
        public decimal Price { get; set; }
        /// <summary>
        /// 商品类目
        /// 24
        /// 可选
        /// </summary>
        public string GoodsCategory { get; set; }
        /// <summary>
        /// 商品类目树，从商品类目根节点到叶子节点的类目id组成，类目id值使用|分割
        /// 128
        /// 可选
        /// </summary>
        public string CategoriesTree { get; set; }
        /// <summary>
        /// 商品描述信息
        /// 1000
        /// 可选
        /// </summary>
        public string Body { get; set; }
        /// <summary>
        /// 商品的展示地址
        /// 400
        /// 可选
        /// </summary>
        public string ShowUrl { get; set; }
    }
    /// <summary>
    /// 业务扩展参数
    /// </summary>
    public class ExtendParamsItem
    {
        /// <summary>
        /// 系统商编号
        /// 该参数作为系统商返佣数据提取的依据，请填写系统商签约协议的PID
        /// 64
        /// 可选
        /// </summary>
        public string SysServiceProviderId { get; set; }
        /// <summary>
        /// 卡类型
        /// 32
        /// 可选
        /// </summary>
        public string CardType { get; set; }
    }
}
